Method and system for workload balancing

ABSTRACT

A method and system for workload balancing includes determining which one of a plurality of printer devices satisfies at least one criteria and routing the job to the printer device which satisfies the criteria. The determining is carried out at one or more of the plurality of printer devices.

FIELD

[0001] This invention generally relates to methods and systems forworkload balancing and, more particularly, to a method and system forworkload balancing between a plurality of printers or othermultifunction devices.

BACKGROUND

[0002] In a networked environment, a variety of computer work stationsusually are coupled to a central server and a plurality of printers.Typically, each of the computer work stations is assigned to one of theprinters and jobs from the work station are sent to the assigned printerunless the operator selects another printer for a particular printingjob.

[0003] Although the networked environment described above works, it isinefficient because there is no management of the jobs being sent to thedifferent printers. As a result, one printer may be backed up witheither a large printing job and/or a number of jobs while other printersare available and unused.

SUMMARY

[0004] A method and a computer readable medium having stored thereoninstructions for workload balancing in accordance with embodiments ofthe present invention includes determining which one of a plurality ofprinter devices satisfies at least one criteria and routing the job tothe printer device which satisfies the criteria. The determining iscarried out at one or more of the plurality of printer devices.

[0005] A system for workload balancing in accordance with embodiments ofthe present invention includes a job processing system in at least oneof a plurality of printer devices and a routing system. The jobprocessing system in at least one of a plurality of printer devicesdetermines which one of the plurality of printer devices satisfies atleast one criteria. The routing system in the at least one of theplurality of printer devices routes the job to the printer device whichsatisfies at least one criteria.

[0006] The present invention provides a number of advantages includingproviding an automatic system for balancing jobs or workloads amongprinters. Additionally, the present invention eliminates the need for acentral server managing the work flow between available printers.

BRIEF DESCRIPTION OF THE DRAWINGS

[0007]FIG. 1 is a block diagram of a system of printer devices inaccordance with embodiments of the present invention; and

[0008]FIG. 2 is a flow chart of a method for workload balancing betweena plurality of printer devices.

DETAILED DESCRIPTION

[0009] A system 10 for balancing a workload between a plurality ofprinter devices 12(1)-12(3) in accordance with embodiments of thepresent invention is illustrated in FIG. 1. System 10 includes aplurality of printer devices 12(1)-12(3) coupled together by a network14, although the system 10 may include different kinds and numbers ofcomponents. The present invention provides a number of advantagesincluding providing an automatic system for balancing jobs or workloadsamong printer devices, such as printers or other multifunction devices

[0010] Referring to FIG. 1, system 10 includes three printer devices12(1)-12(3), such as printing or facsimile machines, although system 10can include other numbers and types of devices. Each of the printerdevices 12(1)-12(3) includes a printer or multifunction device16(1)-16(3) and a printer controller 18(1)-18(3) that perform a varietyof functions, such as printing operations and workload balancing,although other types and numbers of components and operations can beused and performed. Although the printer controller 18(1)-18(3) is shownwith the printer or multifunction device 16(1)-16(3) in each of theprinter devices 12(1)-12(3), other arrangements can be used, such ashaving the printer controller 18(1)-18(3) at another location, such asat a computer work station, separate from the printer or multifunctiondevice 16(1)-16(3).

[0011] Each printer or multifunction device(1)-16(3) in the printdevices 12(1)-12(3) is able to print received jobs on a print medium,such as a sheet of paper. A variety of different types of printers ormultifunctional devices, such as ink jet and laser printers, could beused.

[0012] Each printer controller 18(1)-18(3) includes a processor 20, amemory storage device 22, a display 24, a user input device 26, and aninput/output (I/O) unit 28 which are coupled together by a bus system 40or other link, respectively, although the each printer controller18(1)-18(3) may comprise other components, other numbers of thecomponents, and other combinations of the components.

[0013] The processor 20 may execute one or more programs of storedinstructions for the method for balancing workload in accordance withone embodiment of the present invention as described herein andillustrated in FIGS. 1-2. In this particular embodiment, theseprogrammed instructions are stored in memory 22 and are executed byprocessor 20 in one of the printing devices 12(1)-12(3), although someor all of those programmed instructions could be stored and retrievedfrom and also executed at other locations. A variety of different typesof memory storage devices, such as a random access memory (RAM) or aread only memory (ROM) in the system or a floppy disk, hard disk, CDROM, or other computer readable medium which is read from and/or writtento by a magnetic, optical, or other reading and/or writing system thatis coupled to the processor 20, can be used for memory 22.

[0014] The display or graphical user interface 24 is used to showinformation to the operator, such as the work queue for a particularprinter or the status of different. A variety of different of devicescan be used for the display 24, such as a CRT or flat panel display.

[0015] The user input device 26 in each printer controller 18(1)-18(3)permits an operator to enter data into the corresponding printercontroller 18(1)-18(3). A variety of different types devices can be usedfor user input device 26, such as a keyboard, a computer mouse, or aninteractive display screen.

[0016] The I/O unit 28 in each printing device 12(1)-12(3) is used tocouple the printing device 12(1)-12(3) to other components, such asother printer devices 12(1)-12(3) coupled to the network. A variety ofdifferent interface devices can be used with a variety of differentcommunication protocols.

[0017] The network 14 is the Internet in this example, although othertypes of networks can be used, such as an a local area network, a widearea network, a telephone line network, a coaxial cable network, and awireless networks can be used. The network 14 enables printer devices12(1)-12(3) to communicate with each other and any other components withaccess to network 14.

[0018] The operation of the system 10 for balancing work load inaccordance with embodiments of the present invention will now bedescribed with reference to FIGS. 1-2. The operation starts at step 100where a job, such as a print job, is received or otherwise obtained atone of the print devices 12(1)-12(3), such as print device 12(1).

[0019] In step 102, printer controller 18(1) determines whether sharingof the received job with the other print devices 12(2) and 12(3) in thisexample is permitted. For example, the print job may containconfidential material and thus may need to be printed at a printer ormultifunction device 16(1) where access is restricted. If sharing of thejob is not permitted, then the No branch is taken to step 114 where thejob enters the queue for jobs at the printer or multifunction device16(1), is eventually printed, and then this process ends at step 116. Ifsharing of this job is permitted, then the Yes branch is taken to step104.

[0020] In step 104, the printer controller 18(1) in this example checksthe rule or rules for sharing jobs at printer device 12(1). A variety ofdifferent types of job sharing rules can be evaluated by the printercontroller 18(1). For example, the printer controller 18(1) maydetermine if the job would exceed a maximum for a work queue at theprinter device 12(1) which received the job. The printer controller18(1) may determine if the job would take longer to complete than afirst period of time. The printer controller 18(1) may determine if theprinter 16(1) which would print the received the job is non-functional.The particular job sharing rule or rules considered can be customizedfor the particular application.

[0021] In step, 106, the printer controller 18(1) determines if at leastone of the job sharing rules is satisfied, although other configurationscan be used, such as requiring other numbers of job sharing rules to besatisfied before permitting the job to be satisfied. If at least one jobsharing rule is not satisfied, then the No branch is taken to step 114where the job enters the queue for jobs at the printer or multifunctiondevice 16(1), is eventually printed, and then this process ends at step116. If sharing of this job is permitted, then the Yes branch is takento step 108.

[0022] In step 108, the printer controller 18(1) determines what otherprinter devices 12(2) and 12(3) are available for handling the job. Avariety of different techniques can be used to determine what otherprinter devices are available, such as a polling technique via thenetwork 14. The availability of each printer device 12(1)-12(3) can varybased on one or more factors which can be customized by the operator orsystem administrator. For example, one factor may simply be whether theprinter devices 12(1)-12(3) is functional.

[0023] In step 110, based on the printer devices 12(2) and 12(3) aredetermined to be available, the printer controller 18(1) determineswhich of the available printer devices 12(1)-12(3) satisfies at leastone criteria. For example, one criteria may be which of the availableprinter devices 12(1)-12(3) can complete the job in the shortest amountof time, although other types and number of criteria can be used. Inthis example, the printer controller 18(1) would check the queue at eachof the printer devices 12(1)-12(3) and based on the number and size ofthe job or jobs at each printer device 12(1)-12(3) would determine whichprinter device 12(1)-12(3) could complete the job in the shortest amountof time.

[0024] In step 112, the printer controller 18(1) sends the job to theprinter or multifunction device 16(1), 16(2), or 16(3) which satisfiesthe criteria. In this example, printer controller 18(1) has determinedthat printer device 12(2) would complete the job in the shortest amountof time, so the printer controller 18(1) sends the job via network 14 tothe printer device 12(2). In step 114, the printer 16(2) prints the joband the operation for this job ends.

[0025] Accordingly, the present invention provides a system and methodfor balancing jobs or workloads among devices, such as printers ormultifunctional devices 16(1)-16(3). Additionally, with the presentinvention the management of the workload takes place at each printerdevice, thus eliminating the need for a central server to manage thework flow.

[0026] While particular embodiments have been described above,alternatives, modifications, variations, improvements, and substantialequivalents that are or may be presently unforeseen may arise toapplicants or others skilled in the art. Accordingly, the appendedclaims as filed, and as they may be amended, are intended to embrace allsuch alternatives, modifications, variations, improvements, andsubstantial equivalents. Further, the recited order of processingelements or sequences, or the use of numbers, letters, or otherdesignations therefore, is not intended to limit the claimed processesto any order except as may be specified in the claims.

What is claimed:
 1. A method comprising: determining which one of aplurality of printer devices satisfies at least one criteria, whereinthe determining is carried out at one or more of the plurality ofprinter devices; and routing the job to the printer device whichsatisfies the criteria.
 2. The method as set forth in claim 1 whereinthe at least one criteria is which of the plurality of printer devicescan complete the job in the shortest amount of time.
 3. The method asset forth in claim 1 further comprising receiving the job at one of theplurality of printer devices.
 4. The method as set forth in claim 3further comprising determining if the printer device which received thejob can share the job with another one of the plurality of printerdevices.
 5. The method as set forth in claim 3 wherein the determiningif the printer device which received the job can share the job furthercomprises: determining if one or more job sharing rules has beensatisfied; and permitting a transfer of the job to another one of theplurality of printer devices if at least one of the job sharing ruleshas been satisfied.
 6. The method as set forth in claim 5 wherein one ofthe job sharing rules comprises at least one of: determining if the jobwould exceed a maximum for a work queue at the printer device whichreceived the job; determining if the job would take longer to completethen a first period of time; and determining if the printer device whichreceived the job is non-functional.
 7. The method as set forth in claim1 further comprising determining which of the plurality of printerdevices are available, wherein the determining which one of a pluralityof printer devices satisfies at least one criteria is determined fromthe plurality of printer devices which are determined to be available.8. A computer readable medium having stored thereon instructions forbalancing a workload between a plurality of printer devices which whenexecuted by a processor, causes the processor to perform the steps of:determining which one of a plurality of printer devices satisfies atleast one criteria, wherein the determining is carried out at one ormore of the plurality of printer devices; and routing the job to theprinter device which satisfies the criteria.
 9. The medium as set forthin claim 8 wherein the at least one criteria is which of the pluralityof printer devices can complete the job in the shortest amount of time.10. The medium as set forth in claim 8 further comprising receiving thejob at one of the plurality of printer devices.
 11. The medium as setforth in claim 9 further comprising determining if the printer devicewhich received the job can share the job with another one of theplurality of printer devices.
 12. The medium as set forth in claim 11wherein the determining if the printer device which received the job canshare the job further comprises: determining if one or more job sharingrules has been satisfied; and permitting a transfer of the job toanother one of the plurality of printer devices if at least one of thejob sharing rules has been satisfied.
 13. The medium as set forth inclaim 12 wherein one of the job sharing rules comprises at least one of:determining if the job would exceed a maximum for a work queue at theprinter device which received the job; determining if the job would takelonger to complete then a first period of time; and determining if theprinter device which received the job is non-functional.
 14. The mediumas set forth in claim 8 further comprising determining which of theplurality of printer devices are available, wherein the determiningwhich one of a plurality of printer devices satisfies at least onecriteria is determined from the plurality of printer devices which aredetermined to be available.
 15. A system comprising; a job processingsystem in at least one of a plurality of printer devices that determineswhich one of a plurality of printer devices satisfies at least onecriteria; and a routing system in the at least one of a plurality ofprinter devices that routes the job to the printer device whichsatisfies the criteria.
 16. The system as set forth in claim 15 whereinthe at least one criteria is which of the plurality of printer devicescan complete the job in the shortest amount of time.
 17. The system asset forth in claim 16 further comprising a sharing system thatdetermines if the printer device with the job can share the job withanother one of the plurality of printer devices.
 18. The system as setforth in claim 17 wherein the sharing system further comprises: a rulessystem that determines if one or more job sharing rules has beensatisfied; and a transfer system that permits a transfer of the job toanother one of the plurality of printer devices if at least one of thejob sharing rules has been satisfied.
 19. The system as set forth inclaim 18 wherein one of the job sharing rules comprises at least one of:determining if the job would exceed a maximum for a work queue at theprinter device which received the job; determining if the job would takelonger to complete then a first period of time; and determining if theprinter device which received the job is non-functional
 20. The systemas set forth in claim 16 further comprising an availability system thatdetermines which of the plurality of printer devices are available,wherein the job processing system determines which one of the pluralityof printer devices satisfies the at least one criteria from theplurality of printer devices which are determined to be available.